package com.ck.easy.easyExcel;

import com.ck.easy.excel.EasyExcelUtil;
import com.ck.easy.listener.DefaultExcelListener;
import com.ck.easy.vo.ScoreDataVo;
import org.apache.poi.ss.formula.functions.T;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.Iterator;
import java.util.List;
import java.util.Map;

@SpringBootTest
public class ReadExcel {

        private String filePath = "D:\\changkang-youth\\export\\1714267292292_af6325f3-7c63-467a-b7ae-3c53e3de671b学生成绩表.xlsx";

        @Test
        public void test1(){
            //同步读取excel数据（无实体类模型）
            //参数1：文件绝对路径      参数2：Excel的第几个sheet 0：第一个     参数3：从第几行开始读取 0：第一行
            List<Map<Integer, String>> data = EasyExcelUtil.syncRead(filePath,0,0);
            for(Iterator it = data.iterator(); it.hasNext();){
                Map<Integer,String> obj = (Map<Integer, String>) it.next();
                System.out.println(obj);
            }
        }

        @Test
        public void test2(){
            //同步读取excel数据（无实体类模型）----读取excel表的高二成绩表数据，从第一行开始读取
            //参数1：文件绝对路径      参数2：Excel的第几个sheet 0：第一个     参数3：从第几行开始读取 0：第一行
            List<Map<Integer, String>> data = EasyExcelUtil.syncRead(filePath,1,0);
            for(Iterator it = data.iterator(); it.hasNext();){
                Map<Integer,String> obj = (Map<Integer, String>) it.next();
                System.out.println(obj);
            }
        }

    @Test
    public void test3(){
        //同步读取excel数据（实体类模型）----读取excel表的第二张sheet高二成绩表数据，从第一行开始读取
        List<T> obj = EasyExcelUtil.syncReadModel(filePath, ScoreDataVo.class,1,1);
        Iterator<T> it = obj.iterator();
        while(it.hasNext()){
            System.out.println("TODO插入数据库"+it.next());
        }
    }

    @Test
    public void test4(){
        //异步读取excel数据（无实体类模型）----读取excel表的第一张sheet高一成绩表数据，从第一行开始读取
        EasyExcelUtil.asyncRead(filePath,new DefaultExcelListener<>(),0,1);
        //异步读取的数据会在监听器类里面处理数据
    }

    @Test
    public void test5(){
        //异步读取excel数据（有实体类模型）----读取excel表的第一张sheet高一成绩表数据，从第一行开始读取
        EasyExcelUtil.asyncReadModel(filePath,new DefaultExcelListener<>(), ScoreDataVo.class,0,1);
        //异步读取的数据会在监听器类里面处理数据
    }


}

